package com.example.demo02.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;


/**
 * <p>
 * 商家优惠券商品表
 * </p>
 *
 * @author 徐嘉立
 * @since 2024-03-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ShopDiscountGoods implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商家优惠券商品ID
     */
    @TableId(value = "discount_goodsid", type = IdType.AUTO)
    private Integer discountGoodsid;

    /**
     * 商品说明
     */
    private String goodsDescription;

    /**
     * 商品状态（1上架 2下架 9删除）
     */
    private String goodsState;

    /**
     * 已售张数
     */
    private Integer saleNum;

    /**
     * 优惠券标题
     */
    private String title;

    /**
     * 优惠券种类（8 商家车牌券）
     */
    private String discountKind;

    /**
     * 优惠类型（0金额 1时长 2次数 3折扣优惠 4 时段优惠）
     */
    private String discountType;

    /**
     * 优惠券金额/次数 当金额时单位为分
     */
    private Integer discountAmount;

    /**
     * 实际购买金额，单位为分
     */
    private Integer buyAmount;

    /**
     * 满使金额（满多少金额有优惠 0无限制）当金额时单位为分
     */
    private Integer fullCutAmount;

    /**
     * 商品上架总数（-1不限制张数）
     */
    private Integer dailyBudget;

    /**
     * 最少购买数量（-1不限制张数）
     */
    private Integer minBudget;

    /**
     * 优惠券说明
     */
    private String discountInfo;

    /**
     * #可用停车场id#必须以#开头和结尾
     */
    private String parkpotid;

    /**
     * 可用停车场名称填充
     */
    private String parkpotName;

    /**
     * 每人最多领取张数（-1不限制张数） 同车牌同一discountid优惠券未使用的，5分钟内不允许领用第二张
     */
    private Integer maxNum;

    /**
     * 使用方式（0不可叠加使用 1可叠加使用）
     */
    private String usageMode;

    /**
     * 操作人（新增修改结束商品等）
     */
    private String usercode;

    /**
     * 收费主体ID
     */
    private Integer invoiceEntityid;

    /**
     * 优惠内容（type为0时表示金额，1时表示分钟，2时为空，3时表示折扣）
     * 金额{"discount_type":"0","value":"500"}、
     * 时长{"discount_type":"1","value":"120"}、
     * 次数{"discount_type":"2","value":"1"}、
     * 时段{"discount_type":"4","value":{"starttime":"20:00:00", "endtime":"08:00:00"}
     */
    private String discountValue;

    /**
     * 场景类型，1纸质券，2电子券（纸质券仅支持使用有效期，1/3/4）
     */
    private String sceneType;

    /**
     * 结算类型  0定价型(商家采购)，2补贴型（手动配发）
     */
    private String settlementType;

    /**
     * 优惠券定价 单位：分
     */
    private String discountPrice;

    /**
     * （备用）封顶类型 0先封顶再优惠  1先优惠再封顶（discounttype为0/3时有值）后续备用
     */
    private String maxfeeType;

    /**
     * （备用）时长类型 0扣减前时段  1扣减后时段 （discounttype为1时有值）后续备用
     */
    private String discountTimeType;

    /**
     * 发放有效期类型 0长期有效  1指定日期  2指定时长
     */
    private String grantValidType;

    /**
     * 发放有效期指定时长，单位天（grant_valid_type=2时有效）
     */
    private Integer grantValidCycle;

    /**
     * 发放有效期开始时间（grant_valid_type=1时有效，可为空）
     */
    private Date grantValidStartdate;

    /**
     * 发放有效期结束时间（grant_valid_type=1时有效，不可为空）
     */
    private Date grantValidEnddate;

    /**
     * 使用有效期类型 0长期有效  1指定日期  2指定时长
     */
    private String useValidType;

    /**
     * 使用有效期指定时长，单位天（use_valid_type=2时有效）
     */
    private Integer useValidCycle;

    /**
     * 使用有效期开始时间（use_valid_type=1时有效，可为空）
     */
    private Date useValidStartdate;

    /**
     * 使用有效期结束时间（use_valid_type=1时有效，不可为空）
     */
    private Date useValidEnddate;

    /**
     * 指定商家ID,多选，不填则为不指定
     */
    private String shopidMult;

    /**
     * 商品创建时间
     */
    private Date createTime;

    /**
     * 商品修改时间
     */
    private Date updateTime;

}
